from alg1 import is_possible_divide
from gen1 import generate_test_data

def test_basic_cases():
    """测试基本用例"""
    # 测试用例1：可以分组的情况
    assert is_possible_divide([1,2,3,6,2,3,4,7,8], 3) == True
    
    # 测试用例2：不能分组的情况
    assert is_possible_divide([1,2,3,4,5], 4) == False
    
    # 测试用例3：单张牌的情况
    assert is_possible_divide([1], 1) == True
    
    print("基本测试用例通过！")

def test_random_cases():
    """测试随机生成的用例"""
    # 生成10组测试数据，每组牌的数量在6到15之间，牌的数值在1到10之间，组大小为3
    test_data = generate_test_data(10, 6, 15, 1, 10, 3)
    
    print("随机测试用例：")
    for i, (hand, group_size) in enumerate(test_data, 1):
        result = is_possible_divide(hand.copy(), group_size)  # 使用copy()避免修改原始数据
        print(f"测试 {i}:")
        print(f"输入: hand = {hand}, groupSize = {group_size}")
        print(f"输出: {result}")
        print("-" * 50)

if __name__ == "__main__":
    print("开始测试...")
    test_basic_cases()
    print("\n开始随机测试...")
    test_random_cases()